In recent years, the number of users on the Internet has increased exponentially. With this increase in popularity, there has also come an increased demand for languages that enhance the "on-line" experience. To this end, new object-oriented computer-programming languages such as Curl.TM. and JAVA.TM. have been developed, which ostensibly provide not only platform independence, but also increased functionality.
A common problem for these languages is the utilization of memory. These languages allocate memory from free storage and reclaim ("garbage collect") the allocated memory once it is no longer in use. An important aspect of garbage collection is the mapping of object pointers to information about those pointers. Thus, a set of auxiliary data structures are used for things like marking the object "alive" and figuring out which other objects this one points to. The problem of finding this data is compounded in conservative garbage collectors where pointers to objects are followed and the memory utilized by those objects is reclaimed only under a conservative standard.
In such systems, a value that looks like a pointer may in fact be junk with no associated information. Therefore, a system for efficient determination of the validity of a pointer is needed.